package com.iwunu.gateway.service.impl;

import javax.annotation.Resource;

import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Component;

import com.iwunu.gateway.entity.ImageMongo;
import com.iwunu.gateway.service.ImageMongodbService;

@Component
public class ImageMongodbServiceImpl implements ImageMongodbService {

	 @Resource
	 private MongoTemplate mongoTemplate;
	 
	public ImageMongo getImageByDeviceId(String clientId,Integer pitNum) {
		Query query = new Query(Criteria.where("clientId").is(clientId).and("pitNum").is(pitNum));
		ImageMongo imageMongo = mongoTemplate.findOne(query, ImageMongo.class);
        return imageMongo;
	  }
	
	
	public void removeImageByDeviceId(String clientId) {
		Query query = new Query(Criteria.where("clientId").is(clientId));
		 mongoTemplate.remove(query, ImageMongo.class);
	  }
	public void save(ImageMongo imageMongo) {
		 mongoTemplate.insert(imageMongo);
	  }

	@Override
	public void updateImageStatus(ImageMongo imageMongo) {
		Query query = new Query(Criteria.where("clientId").is(imageMongo.getClientId()).and("pitNum").is(imageMongo.getPitNum()));
		Update update = Update.update("isValid", imageMongo.isValid()).set("isSucc", imageMongo.isSucc()).set("status",3);
		mongoTemplate.findAndModify(query, update, ImageMongo.class);
	}


	@Override
	public void removeImageByDeviceId(ImageMongo imageMongo) {
		Query query = new Query(Criteria.where("clientId").is(imageMongo.getClientId()).and("pitNum").is(imageMongo.getPitNum()));
		 mongoTemplate.remove(query, ImageMongo.class);
	}
	
//	@Override
//	public void removeImageByDeviceId(ImageMongo imageMongo) {
//		Query query = new Query(Criteria.where("clientId").is(imageMongo.getClientId()).and("pitNum").is(imageMongo.getPitNum()));
//		Update update = Update.update("isValid",false).set("isSucc", false);
//		mongoTemplate.findAndModify(query, update, ImageMongo.class);
//	}
}
